// google
//
// GM_download（详细信息），GM_download（网址，名称）
// 将给定的 URL 下载到本地磁盘。
//
// 详细信息可以具有以下属性：
// url - 应下载数据的 URL（必需）
// name  - 文件名 - 出于安全原因，需要在 Tampermonkey 的选项页面将文件扩展名列入白名单（必需）
// headers  - 见 GM_xmlhttpRequest 了解更多详情
// saveAs  - 布尔值，显示一个 saveAs 对话框
// onerror 如果此下载以错误结束，则执行 onerror 回调
// onload 如果此下载完成，将执行 onload 回调
// onprogress 如果此下载取得了一些进展，则执行 onprogress 回调
// ontimeout 如果此下载由于超时而失败，则执行 ontimeout 回调
// onerror 回调的下载参数可以具有以下属性：
// error - 错误原因
// not_enabled - 用户未启用下载功能
// not_whitelisted - 请求的文件扩展名未列入白名单
// not_permitted - 用户启用了下载功能，但没有授予下载权限
// not_supported - 浏览器/版本不支持下载功能
// not_succeeded - 下载未开始或失败，详细信息属性可能提供更多信息
// details - 有关该错误的详细信息
// 返回具有以下属性的对象：
// abort - 要调用的函数以取消此下载
//
// 根据下载模式，GM_info 提供了一个名为 downloadMode 的属性，该属性设置为以下值之一：native、disabled 或 browser。

// baiDu
//
// GM_下载（详细信息），GM_下载（url，名称）
// 将给定的URL下载到本地磁盘。
//
// 详细信息可以具有以下属性：
// url—从中下载数据的url（必需）
// name-文件名-出于安全原因，文件扩展名需要在Tampermonkey的“选项”页面上列出（必需）
// headers-有关更多详细信息，请参阅GM_xmlhttpRequest
// saveAs-布尔值，显示saveAs对话框
// onerror-如果此下载以错误结束，将执行onerror回调
// onload-如果此下载完成，将执行onload回调
// onprogress-如果此下载取得一些进展，将执行onprogress回调
// ontimeout-如果此下载由于超时而失败，将执行ontimeout回调
// OneError回调的下载参数可以具有以下属性：
// 错误-错误原因
// 未启用\u-用户未启用下载功能
// 未列入白名单-请求的文件扩展名未列入白名单
// 不允许-用户启用了下载功能，但未授予下载权限
// 不受支持-浏览器/版本不支持下载功能
// 未成功-下载未启动或失败，详细信息属性可能提供更多信息
// 详细信息-有关该错误的详细信息
// 返回具有以下属性的对象：
// 中止-调用函数以取消此下载
//
// 根据下载模式，GM_info提供了一个名为downloadMode的属性，该属性设置为以下值之一：native、disabled或browser。